#   --------------------------------注释区--------------------------------
#   入口: http://1745226664.wmhp7b.cn/?iv=37633861663962375f31373435323236363634&type=i&u=2240064&huhi=7nolcjw2
#
#   需抓取数据: 
#   * 填写自动过检的api接口 本地 内网ip:5000 非本地自行进行穿透
#   * 登录多少个账号就跑多少个账号
#   * 不想跑的号可以填wxid到 yuanshen_ddzbapi_notrun 多个#分割 注意是原始id 可以在软件上找到哦
#   * PS 此版本速度慢是正常的 有需求可以开多线程
#
#
#   抓取请求头中的user-agent填入yuanshen_useragent 无论多少个号都只填一个即可!!!!  要且只要手机微信端user-agent其余user-agent = 封号
#
#   变量名:yuanshen_api
#   满0.3自动微信提现
#
# 下面是自定义变量设置(注意是修改对应的环境变量而不是改文件内容):
# huaji_ddzb_max_threads                默认1 最大线程数
# huaji_ddzb_is_According_time_send     默认开启 是否否根据文章时间来判断是否为检测文章 开启1 关闭0
#   --------------------------------祈求区--------------------------------
#                     _ooOoo_
#                    o8888888o
#                    88" . "88
#                    (| -_- |)
#                     O\ = /O
#                 ____/`---'\____
#               .   ' \\| |// `.
#                / \\||| : |||// \
#              / _||||| -:- |||||- \
#                | | \\\ - /// | |
#              | \_| ''\---/'' | |
#               \ .-\__ `-` ___/-. /
#            ___`. .' /--.--\ `. . __
#         ."" '< `.___\_<|>_/___.' >'"".
#        | | : `- \`.;`\ _ /`;.`/ - ` : | |
#          \ \ `-. \_ __\ /__ _/ .-` / /
#  ======`-.____`-.___\_____/___.-`____.-'======
#                     `=---='
# 
#  .............................................
#           佛祖保佑             永无BUG
#           佛祖镇楼             BUG辟邪
#   --------------------------------代码区--------------------------------
'''
Create at [2025-03-27 19:14:56]
'''
import requests
import os
import sys
import platform
import subprocess
import importlib
import datetime
from urllib.parse import urlparse
import logging
import socket
logging.basicConfig(level=logging.INFO, format='[%(levelname)s] ===> %(message)s')
log = logging.getLogger(__name__)

THIS_Proxies = 'https://github.huaji.asia/'   # 网络不行就填Github代理 这里只给出一个要是不行就自己找 https://github.huaji.asia/

data = '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'
func = 'main'

GithubUrl = f"{THIS_Proxies.rstrip('/')}/https://raw.githubusercontent.com/huaji8/So_common/master/so" if THIS_Proxies else 'https://raw.githubusercontent.com/huaji8/So_common/master/so'
THIS_MODE = 'Huaji_SoLoader'
So_name = f'{THIS_MODE}.so'




def get_system_info() -> None:
    global Download_name
    python_version = f"{sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}"
    download_pyver = f'{sys.version_info.major}.{sys.version_info.minor}'
    processor_arch = platform.machine().replace('AMD64', 'x86_64').replace('x64', 'x86_64')
    system_name = platform.system()
    system_ver = platform.release() + " " + platform.version()
    system_arch = platform.architecture()[0]
    if system_name == "Darwin":
        system_name = "macOS"
        system_ver = platform.mac_ver()[0]
    elif system_name == "Windows":
        system_ver = f"{platform.release()} (Build {platform.win32_ver()[1]})"
    
    log.info(f"系统信息 [Python/{python_version}] [系统架构 {processor_arch}] [{system_name}/{system_ver} {system_arch}]")
    if download_pyver not in ['3.10','3.11','3.12']:
        log.error(f'当前Python版本不支持运行此脚本，请使用Python3.10或3.11或3.12运行此脚本,什么??你不重装,简单,删除本脚本然后睡觉觉就行了..')
        
    if processor_arch == 'x86_64' and system_name == 'Linux':
        Download_name = f'{THIS_MODE}_{download_pyver}_x64.so'
    elif processor_arch == 'aarch64' and system_name == 'Linux':
        Download_name = f'{THIS_MODE}_{download_pyver}_aarch64.so'
    else:
        Download_name = f'{THIS_MODE}_{download_pyver}_x64.so'
        
    if processor_arch not in ['x86_64', 'aarch64']:
        log.warning(f'当前系统架构大概率不支持运行此脚本...')
        return
    elif 'Linux' not in system_name:
        log.error(f'当前系统不支持运行此脚本，请使用Linux运行此脚本')
    else:
        log.info('系统检测通过,开始运行脚本')
        return
    
    
    
    exit()



def download_file(save_path: str = None) -> bool:
    url =  GithubUrl + '/' + Download_name
    
    try:
        try:
            socket.create_connection(("www.github.com", 80), timeout=5)
            socket.create_connection(("www.github.com", 443), timeout=5)
        except (socket.timeout, socket.gaierror):
            log.warning("无法连接到Github,大概率下载是失败的,请检查网络或使用代理")

        if not save_path:
            file_name = os.path.basename(urlparse(url).path) or "downloaded_file"
            save_path = os.path.join(os.getcwd(), file_name)
        if os.path.exists(save_path) and os.path.getsize(save_path) == 0:
            os.remove(save_path)
        save_dir = os.path.dirname(save_path)
        os.makedirs(save_dir, exist_ok=True)
        curl_cmd = "curl.exe" if platform.system() == "Windows" else "curl"
        cmd = [
            curl_cmd,
            "-L", 
            "-f",
            "--silent",
            "--show-error",
            "-o", save_path,
            "-m","180",
            url
        ]

        result = subprocess.run(
            cmd,
            check=True,
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            text=True
        )


        if not os.path.exists(save_path):
            log.error(f"下载文件不存在: {save_path}")
            return False
        if os.path.getsize(save_path) == 0:
            os.remove(save_path)
            log.error(f"下载文件为空: {save_path}")
            return False
        if result.returncode != 0:
            log.error(f"下载失败: {result.stderr.strip()}")
            return False
        log.info(f"文件下载成功: {save_path}")
        os.rename(Download_name, So_name)
        return True

    except subprocess.CalledProcessError as e:
        error_msg = f"下载失败: {e.stderr.strip()}" if e.stderr else "未知curl错误"
        log.error(error_msg)
        return False
    except Exception as e:
        log.error(f"下载异常: {str(e)}")
        return False
    
def dynamic_import(module_name: str) -> object:
    return importlib.import_module(module_name)

    
def Run() -> None:
    if os.path.exists(So_name):
        log.info('so文件存在,开始运行')
        print('='*30)
        obj = dynamic_import(THIS_MODE)
        obj.run(func, data)
    else:
        log.info('so文件不存在,开始下载')
        if download_file():
            Run()
        else:
            log.error('下载失败,请检查网络或使用代理')


if __name__ == '__main__':
    get_system_info()
    Run()
